# 1
# 有1、2、3、4个数字，能组成多少个互不相同且无重复数字的三位数？都是多少？
def total():
    count = 0
    for i in range(1, 5):
        for j in range(1, 5, 1):
            for k in range(1, 5, 1):
                if i != j and i != k and j != k:
                    print(f"{i}{j}{k}")
                    count += 1
    return count


# 2
# 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时，奖金可提10%；利润高于10万元，低于20万元时，低于10万元的部分按10%提成
# 高于10万元的部分，可可提成7.5%；20万到40万之间时，高于20万元的部分，可提成5%；40万到60万之间时高于40万元的部分，
# 可提成3%；60万到100万之间时，高于60万元的部分，可提成1.5%，高于100万元时，超过100万元的部分按1%提成，从键盘输入当月利润I，求应发放奖金总数？

def money(profit: float):
    one = 10 * 10000
    two = 20 * 10000
    three = 40 * 10000
    four = 60 * 10000
    five = 100 * 10000
    if profit - one <= 0:
        return profit * 0.1
    if profit - two <= 0:
        return one * 0.1 + (profit - 10 * 10000) * 0.075
    if profit - three <= 0:
        return one * 0.1 + one * 0.075 + (profit - 20 * 10000) * 0.05
    if profit - four <= 0:
        return one * 0.1 + one * 0.075 + two * 0.05 + (profit - 40 * 10000) * 0.03
    if profit - five <= 0:
        return one * 0.1 + one * 0.075 + two * 0.05 + two * 0.03 + (
                profit - four) * 0.015
    if profit - five > 0:
        return one * 0.1 + one * 0.075 + two * 0.05 + two * 0.03 + three * 0.015 + (
                profit - five) * 0.01


t = money(150000)
print(t)


# 3
# 一个整数，它加上100后是一个完全平方数，再加上168又是一个完全平方数，请问该数是多少？

def wanquan():
    import math
    for i in range(100000):
        if math.sqrt(i + 100) - int(math.sqrt(i + 100)) == 0 and math.sqrt(i + 268) - int(math.sqrt(i + 268)) == 0:
            print(i)


wanquan()


# 4
# 输入某年某月某日，判断这一天是这一年的第几天?

def total_day(year, month, day):
    """
    闰年二月29天,平年二月28天
    :param year:年
    :param month:月
    :param day:日
    :return:
    """
    data_dict = {1: 0, 2: 31, 3: 59, 4: 90, 5: 120, 6: 151, 7: 181, 8: 212, 9: 243, 10: 273, 11: 304, 12: 334}
    if year % 400 == 0 or (year % 4 == 0 and year & 400 != 0):
        # 闰年
        return data_dict.get(month) + day + 1
    return data_dict.get(month) + day


print(total_day(2019, 3, 10))


# 判断101-200之间有多少个素数，并输出所有素数。

def sushu():
    """
    素数:除了1和本身
    :return:
    """
    count = 0
    for i in range(101, 201):
        type = False
        for j in range(2, int(i // 2)):
            if i % j == 0:
                type = True
                break
        if not type:
            count += 1
            print(i)
    return count


c = sushu()
print(c)
